wayland: Use g_get_prgname() to get the xdg_surface.set_app_id string
authorJonas Ådahl <jadahl@gmail.com>
Tue, 18 Aug 2015 00:38:07 +0000 (08:38 +0800)
committerJonas Ådahl <jadahl@gmail.com>
Tue, 18 Aug 2015 00:45:12 +0000 (08:45 +0800)
commite1fd87728dd841cf1d71025983107765e395b152
tree6d8878246770c9fd0b9f5155d5fd47bf1547cee1
parentaf78792720989a39813ebefc5cd9add3cbff2811
wayland: Use g_get_prgname() to get the xdg_surface.set_app_id string

Prior to this patch, the ID of the GtkApplication was always used for
clients which were GtkApplications. This would only be guaranteed to be
correct for D-Bus activatable programs. As a result, all
non-D-Bus-activatable applications would set the wrong ID making the
shell unable to find the corresponding .desktop file.

This change makes it so that the GDK backend always uses the name
passed to g_set_prgname, or the default value if not explicitly set, as
this more often corresponds to the .desktop file.

This means that in order to make D-Bus activatable applications set the
correct application ID, they must, for now, manually call
g_set_prgname() with their application ID (basename of the .desktop
file).

If g_get_prgname() returns NULL, fallback to gdk_get_program_class()
even though it will most likely never be correct according to the
xdg_surface.set_app_id specification.

https://bugzilla.gnome.org/show_bug.cgi?id=746435
gdk/wayland/gdkwindow-wayland.c